//一、请补全代码，并调试运行。提示：1、2、3建议分部运行，因为有坑。（知识点：静态方法的访问）
package edu.spec.Demo;
class Student{
	private String xm;//姓名
	private String xh;//学号
	private static String bj;//班级
	private static String zy;//专业
	//TODO 构造方法，4个参数对应4个成员属性，方法体完成成员属性的初始化
	public Student(String xm,String xh,String bj,String zy){
		this.xm = xm;
		this.xh = xh;
		this.bj = bj;
		this.zy = zy;
	}
	//TODO 4个成员属性的getter和setter方法
	public void setterXm(String xm){
		this.xm = xm;
	}
	public String getterXm(){
		return this.xm;
	}
	public void setterXh(String xh){
		this.xh = xh;
	}
	public String getterXh(){
		return this.xh;
	}
	public void setterBj(String xm){
		this.bj = bj;
	}
	public String getterBj(){
		return this.bj;//返回当前对象的属性
	}
	public void setterZy(String zy){
		this.zy = zy;
	}
	public String getterZy(){
		return this.zy;
	}
	//TODO main方法
	public static void main(String[] agrs){
		//1、main方法里面构造一个Student类的对象――自己，变量名为self
		Student self = new Student("1","2","3","4");

		//2、先通过setter方法修改self的bj。
		self.setterbj("cbjdc"); 	//修改失败，static属性为类属性，这只是修改对象的属性
		//然后通过getter方法获得self的bj并输出到控制台，方法的访问形式为self.getter()。
		System.out.println(self.getterbj());

		//最后通过getter方法获得self的bj并输出到控制台，方法的访问形式为Student.getter()。
		//错误，无法从静态上下文中引用非静态方法（main 是静态（static）方法，getterxh()为非静态方法）
		//静态(static)方法, 可以 类名.方法名直接调用
		System.out.println(Student.getterbj());

		//3、先通过setter方法修改self的xh。
		self.setterxh("dff");	//修改成功，static属性为类属性，这只是修改类的属性，所属该类的对象的属性也会变化
		//self.getterxh()。
		System.out.println(self.getterxh());
		//Student.getterxh()。
		//错误，无法从静态上下文中引用非静态方法（main 是静态（static）方法，getterxh()为非静态方法）
		//解决，将public String getterxh()改为public  static String getterxh()
		//System.out.println(Student.getterxh());
		
	}
}